home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / boot / BlizKick.lha / BlizKick / Modules / BPPCFix.ASM < prev    next >
Assembly Source File  |  2000-09-04  |  2KB  |  96 lines

  1. ; FILE: Source:modules/BPPCFix.ASM          REV: 2 --- Disable ppc.library of blizzppc
  2.  
  3. ;
  4. ; BPPCFix module for BlizKick
  5. ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  6. ; Written by Harry Sintonen.
  7. ;
  8. ; 1.0: initial release.
  9. ; 1.1: fixed priority to -1. with priority 0 and installed to ROM
  10. ;      area, this module was initialized before `Blizzard PPC Library Init'
  11. ;      and thus failed to work.
  12. ; 1.2: now disables BlizzardPPCLibInit. 3.31 seconds faster booting on my
  13. ;      68060 @ 50MHz system. As a side effect Rafal Mania's InitPPCLib
  14. ;      doesn't work anymore. Use BPPCFixFix and patch regular ppc.library
  15. ;      *or* use loadppclib if you need to reload ppc.library.
  16. ;
  17. ; based on:
  18. ;
  19. ;** BPPCFix_kickcode.asm
  20. ;**
  21. ;** Disables ppc.library resident modules on Amigas with BPPC
  22. ;** Written in 1998 by Frank Wille <frank@phoenix.owl.de>
  23. ;**
  24. ;** V1.0  26-Dec-98
  25. ;**       created
  26. ;
  27. ;
  28. ;
  29.  
  30.     incdir    "include:"
  31.     include    "exec/types.i"
  32.     include    "exec/libraries.i"
  33.  
  34.     include    "exec/execbase.i"
  35.  
  36.     include    "blizkickmodule.i"    ; Some required...
  37.  
  38.     SECTION    MODULE,CODE
  39. _DUMMY_LABEL
  40.  BK_MOD BKMF_SingleMode,_end,(RTF_COLDSTART)<<24+37<<16+NT_UNKNOWN<<8+(1),_name,_idstr,_init
  41.  
  42. ; Singlemode on,
  43. ; COLDSTART module, requires KS V37.x or better, module type NT_UNKNOWN, priority 1.
  44.  
  45. _init    movem.l    d0-a6,-(sp)
  46.     move.l    (4).w,a6
  47.  
  48.     jsr    (-$84,a6)        ; Forbid()
  49.  
  50.     move.l    (ResModules,a6),a0
  51.     move.l    a0,a1
  52.     bra.b    loop_end
  53. loop:
  54.     move.l    d0,(a1)+
  55.     bpl.b    1$
  56.     bclr    #31,d0
  57.     move.l    d0,a0
  58.     move.l    d0,a1
  59.     bra.b    loop_end
  60. 1$:    move.l    d0,a2
  61.  
  62. ; compare module name with "BlizzardPPCLibInit"
  63.     move.l    (RT_NAME,a2),a2        ; name of current module
  64.     lea    (ppclibinit_name,pc),a3
  65.     moveq    #19-1,d0
  66. 2$:    cmpm.b    (a2)+,(a3)+
  67.     dbne    d0,2$
  68.     bne.b    loop_end
  69.     subq.l    #4,a1            ; BlizzardPPCLibInit found - remove module
  70.  
  71. loop_end:
  72.     move.l    (a0)+,d0
  73.     bne.b    loop
  74.  
  75.     clr.l    (a1)            ; end list
  76.  
  77.     jsr    (-$27c,a6)        ; CacheClearU()
  78.  
  79.     jsr    (-$8a,a6)        ; Permit()
  80.  
  81. exit    movem.l    (sp)+,d0-a6
  82.     rts
  83.  
  84. ppclibinit_name
  85.     dc.b    'BlizzardPPCLibInit',0
  86.  
  87. _name    dc.b    'BPPCFix',0
  88. _idstr    dc.b    'BPPCFix 1.2 (2.9.00)',0
  89.     CNOP    0,2
  90. _end
  91.  
  92.     SECTION    VERSION,DATA
  93.  
  94.     dc.b    '$VER: BPPCFix_MODULE 1.2 (2.9.00)',0
  95.  
  96.